package br.gendi.beans;

import java.io.Serializable;
import java.util.ArrayList;

import HTTPClient.NVPair;

public class BaseGenomica implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String formAction;
	private String url;
	private ArrayList<Parametros> parametros;
	private String metodos;
	private boolean ativo;
	private String titulo;

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public BaseGenomica() {
	}

	public String getFormAction() {
		return formAction;
	}

	public void setFormAction(String formAction) {
		this.formAction = formAction;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public ArrayList<Parametros> getParametros() {
		return parametros;
	}

	public String getMetodos() {
		return metodos;
	}

	public void setMetodos(String metodos) {
		this.metodos = metodos;
	}

	public boolean isAtivo() {
		return ativo;
	}

	public void setAtivo(boolean ativo) {
		this.ativo = ativo;
	}

	public void setParametros(ArrayList<Parametros> array) {
		this.parametros = array;		
	}	

	public NVPair[] gerarQuery() {
		ArrayList<Parametros> par = getParametros();
		Parametros p = null;
		ArrayList<NVPair> retorno = new ArrayList<NVPair>();

		String nome, valor = null;
		for (int i=0;i<par.size(); i++) {
			p = par.get(i);

			nome = p.getNome();

			if (p.getValorPadrao() == null || p.getValorPadrao().length()==0) {
				Object o[] = p.getValores().toArray();
				if (o.length >= 1)
					valor = (String) o[0];
			} else {
				valor = p.getValorPadrao();
			}
			NVPair nvp = new NVPair(nome, valor);
			retorno.add(nvp);
		}

		NVPair[] nvRetorno = new NVPair[retorno.size()];
		for (int i=0;i<retorno.size(); i++) {
			nvRetorno[i] = retorno.get(i);
		}
		return nvRetorno;
	}
	
	public String toString() {
		return getTitulo().replaceAll(" ", "_").toLowerCase() + ".dat";
	}
}
